package com.baizhi.iox;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * 提升读取效率
 */
public class FileInputStreamDemo02 {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("./javase_io/再别康桥.text");

        FileOutputStream fos = new FileOutputStream("./javase_io/文件.text");

        /*

           void read(byte[] b)
           重载了一个方法,可以一次读取一个数组

            轻： 00000000 00000000 00000000
         */
        byte[] bytes = new byte[12];

        int d; //每次读取了多少内容，读取数据的长度
        while((d=fis.read(bytes))!=-1){
            //   应该是每次读取了多少，写出多少，不是直接把byte数组直接全部写出，最后一次读取可能读不到8字节，比如读取了2个字节，那么
            // 次数bytes数组中还有上一次读的所有数据，而此时读取的两个字节替换掉原来的八个字节中的两个字节， 这时候还是八个字节，但是已经不是源文件中的字节了，
            // 会出现的情况是要么部分内容重复，要么出现乱码
            //fos.write(bytes);
            fos.write(bytes,0,d);
        }

        fos.close();
        fis.close();


    }
}
